The present invention relates to the field of home automation, and more particularly, to a method and device for automating a home with easy to construct operations.
Conventional home automation systems use logical operations to connect logical expressions, such as "A less than 10", to form more complex expressions involving two or more logical expressions. By way of example, in home automation it might be desired to have lights inside the home turn on when the garage door is opened AND it is dark outside.
Prior art methods of providing logical operations have used the well known Boolean operators including AND, OR and NOT. Often the home owner or system installer has entered these operators and the logical expressions by typing them on the keyboard or selecting them by a pointer device, such as the well known "mouse." The Enerlogic System 1400e by Enerlogic Systems, Inc. of Nashua, N.H. exemplifies the methods in which a keyboard is used to enter logical expressions. Dynasty for Windows by Home Automation Laboratories of Smyrna, Georgia exemplifies the methods using pointer selection.
These known methods have resulted in users of the home automation systems being confused by the complexity of such "logical" statements and can be a negative factor in the acceptance of home automation technology. Furthermore, these "logical" methods fail to account for the relative importance of one event over others, the number of times an event has occurred, the time period over which events might occur, constraints on the time between events and other conditions encountered in the use of home automation. Additions on top of Boolean operations provided to address these limitations only increase the complexity of the systems, making them harder to understand, and can further discourage their use.
Expert systems employ rule based logic in which an "expert" embodies his or her knowledge of how decisions are made into rules similar to the Boolean logic expressions. These methods require experts to establish the often lengthy sets of rules and to test them. Furthermore, due to the complexity and lack of an intuitive sense of the formulation of the rules, users such as home owners, can find them confusing and difficult to operate correctly. Moreover, expert systems also employ Boolean expressions and suffer from the same problems described above.
One type of system used in certain applications that avoids some of the problems with Boolean logic is a neural network. Neural networks overcome the rigidity of Boolean operations by including "neurons" having several multiple valued inputs that are weighted and summed. The output of each "neuron" is dependent on the sum of the inputs and a function that limits the value within a preset range, such as between -1 and +1. The output of a "neuron" can be retarded until the sum of the inputs reaches a threshold at which time the "neuron" is said to "fire" and to enable it's output to be available, possibly as the input to another layer of the neural net. Neural nets may have three layers, commonly referred to as the input layer, the intermediate layer and the output layer. The input layer receives its inputs from external sources, the intermediate layer receives its inputs from the input layer while the output layer receives its inputs from the intermediate layer and provides its outputs to external destinations.
Neural networks have been used in applications involving pattern recognition such as speech recognition, image interpretation and the like. However, one problem with neural networks is that the weights in a neural network typically are not set directly, as are the Boolean operations and expression, but require extensive training by presenting multiple sets of input values to the network along with the corresponding sets of desired output values. An algorithm, such as the well known back propagation algorithm, is needed to adapt the weights of each "neuron" until some measure of the differences between the desired outputs and the outputs of the network is minimized. This training can be time consuming; the preparation of the training sets of input values and desired outputs can require substantial time and effort; and it often is uncertain how the resulting network will respond when input sets that have not been included in the training sets are encountered during operation. Another problem with using a typical neural net in home automation is that it would be difficult to explain to users why, for example, their lights are behaving in certain ways and how to change the network to correct undesirable actions.